Methods for generating a work-order in real time and devices thereof

ABSTRACT

A method, non-transitory computer readable medium, and a mobile computing device comprises obtaining one or more databases from one or more sources; identifying one or more items in the obtained one or more databases; determining a fee for the identified one or more items based on one or more fee setting parameters; and generating a work-order in real-time based on the determined fee.

This application is a continuation of U.S. patent application Ser. No.14/030,887, filed Sep. 18, 2013, which is hereby incorporated byreference in its entirety.

FIELD OF THE INVENTION

The present invention relates to a method and device for generating awork-order in real time, and is generally suitable for any type ofservice provider who utilizes new equipment or replacement parts indelivering a service to a customer.

BACKGROUND OF THE INVENTION

Service providers, such as electricians, plumbers, heating/coolingcontractors who provide installation and repair services for commercialand/or residential customers, are tasked with diagnosing problems raisedby their customers, initiating the repair service, completing theservice, and completing the financial transaction associated with theservice. One difficulty that these service providers have is the abilityto efficiently estimate costs for parts and repair services. The typicalway of performing cost estimations is a highly manual endeavor, althoughcertain individual contractors or their employers may have standardrepair services with flat rate charges. Estimating the cost of parts,which are subject to price variability levied by the distributors thatcontractors use, adds further complexity to the process. As a result ofexisting cost estimation systems being manual, inefficiencies naturallyoccur, and much time and effort is wasted in generating a work orderwith repair service and parts fee estimates, and then closing out atransaction with a customer.

It would be desirable, therefore, to develop a device and method thatallows a service provider to efficiently generate a work order in thefield, in real time, using routinely updated parts and service fees,present the work order to the customer for immediate approval, initiateand complete the agreed upon service, and optionally complete paymenttransactions for services rendered. Increased efficiencies on thetransactional side of these services will allow for decreased timeallocation to the transaction and, therefore, increased profitability.Further, through the use of flat-rate pricing and automated, scaledparts markup during work-order generation, increased profitability canbe achieved.

The present invention is directed to overcoming these and otherdeficiencies in the art.

SUMMARY OF THE INVENTION

A first aspect of the present invention relates to a method forgenerating a work-order in real time. The method includes the steps ofobtaining, by a mobile computing device, one or more databases from oneor more sources; identifying, by the mobile computing device, one ormore items in the obtained one or more databases; determining, by themobile computing device, a fee for the identified one or more itemsbased on one or more fee setting parameters; and generating by themobile computing device a finalized work-order in real-time based on thedetermined fee.

A second aspect of the invention also relates to a method for generatinga work-order in real time. The method includes the steps of identifying,by a mobile computing device, one or more databases from one or moresources; identifying, by the mobile computing device, one or more itemsin the identified one or more databases; determining, by the mobilecomputing device, a fee for the identified one or more items based onone or more fee setting parameters; and generating, by the mobilecomputing device, a finalized work-order in real-time based on thedetermined fee. The method further includes one or more of the followingsteps: determining, by the mobile computing device, a fee adjustment forone or more determined fees and applying the determined fee adjustmentto one or more determined fees; determining, by the mobile computingdevice, a discount value for one or more determined fees and applyingthe determined discount value to the one or more determined fees;applying, by the mobile computing device, a custom label to a useraccount associated with the mobile computing device, whereby one or moreprocess steps of the method is modified based on the applied customlabel, either before or after generating the work-order; or determining,by the mobile computing device, whether the generated work order reducesa user account balance to below a threshold level.

A third aspect of the present invention relates to a non-transitorycomputer readable medium having stored thereon instructions forgenerating a work-order in real time, and including machine executablecode which when executed by at least one processor, causes the processorto perform steps including: obtaining one or more databases from one ormore sources; identifying one or more items in the obtained one or moredatabases; determining a fee for the identified one or more items basedon one or more fee setting parameters; and generating a finalizedwork-order in real-time based on the determined fee.

A fourth aspect of the present invention relates to a non-transitorycomputer readable medium having stored thereon instructions forgenerating a work-order in real time, and including machine executablecode which when executed by at least one processor, causes the processorto perform steps including: identifying one or more databases from oneor more sources; identifying one or more items in the identified one ormore databases; determining a fee for the identified one or more itemsbased on one or more fee setting parameters; and generating a finalizedwork-order in real-time based on the determined fee. The processor isalso caused to perform one or more of the following steps: determining afee adjustment for one or more determined fees and applying thedetermined fee adjustment to one or more determined fees; determining adiscount value for one or more determined fees and applying thedetermined discount value to the one or more determined fees; applying acustom label to a user account associated with a mobile computingdevice, whereby one or more process steps of the method is modifiedbased on the applied custom label, either before or after generating thework-order; or determining, by the mobile computing device, whether thegenerated work order reduces a user account balance to below a thresholdlevel.

A fifth aspect of the present invention relates to a mobile computingdevice that includes one or more processors and a memory, wherein thememory is coupled to the one or more processors which are configured toexecute programmed instructions stored in the memory including:obtaining one or more databases from one or more sources; identifyingone or more items in the obtained one or more databases; determining afee for the identified one or more items based on one or more feesetting parameters; and generating a finalized work-order in real-timebased on the determined fee.

A sixth aspect of the present invention relates to a mobile computingdevice that includes one or more processors and a memory, wherein thememory is coupled to the one or more processors which are configured toexecute programmed instructions stored in the memory including:identifying one or more databases from one or more sources; identifyingone or more items in the identified one or more databases; determining afee for the identified one or more items based on one or more feesetting parameters; and generating a finalized work-order in real-timebased on the determined fee. The programmed instructions stored in thememory further include one or more of: determining a fee adjustment forone or more determined fees and applying the determined fee adjustmentto one or more determined fees; determining a discount value for one ormore determined fees and applying the determined discount value to theone or more determined fees; applying a custom label to a user accountassociated with a mobile computing device, whereby one or more processsteps of the method is modified based on the applied custom label,either before or after generating the work-order; or determining, by themobile computing device, whether the generated work order reduces a useraccount balance to below a threshold level.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary mobile computing device forgenerating work-order in real-time;

FIGS. 2A-2B are exemplary flowcharts for generating a work-order inreal-time;

FIG. 3 is an exemplary flowchart illustrating the mobile computingdevice receiving user information;

FIG. 4 is an exemplary block diagram illustrating the mobile computingdevice obtaining database from a server;

FIGS. 5A-5D is an exemplary flowchart illustrating the mobile computingdevice suggesting search items;

FIG. 6A-C illustrate an exemplary parts reordering system, where FIG. 6Ais an exemplary flowchart illustrating a method for parts reordering,FIG. 6B illustrates one embodiment for distributor interface with themobile computer device for automated parts reordering, and FIG. 6Cillustrates the relationship between multiple technicians employed by asingle contractor and their ability to access parts from one or moredistributors and their outlets;

FIG. 7 is an exemplary flowchart illustrating a method for determiningand applying a fee adjustment (for cost recovery);

FIGS. 8A-B are exemplary flowcharts illustrating a method fordetermining a discount value to be applied to a work order as a whole(FIG. 8A) or per selected repair (FIG. 8B);

FIG. 9 is an exemplary block diagram illustrating the mobile computingdevice displaying a work-order;

FIG. 10 is an exemplary flowchart for a method of auto-payment for auser's maintenance of a positive work-order balance;

FIGS. 11A-B are graphs illustrating an exemplary parts mark-up protocolwithout (FIG. 11A) and with (FIG. 11B) use of an algorithm to smoothtransitions between different mark-up categories; and

FIG. 12 is an exemplary flowchart for a method of synchronizing datafrom the inventive devices to a device operating accounting softwaresuch as QuickBooks™.

DETAILED DESCRIPTION OF THE INVENTION

An exemplary environment 10 including a mobile computing device 14 andplurality of servers 16 for generating a work-order in real-time isillustrated in FIG. 1. As used herein, “generating a work-order” isintended to encompass the completion of a finalized work-order that canbe presented to a customer for review and then approved by the customerbefore work is commenced. This is the end result of a process of openinga new work-order, and populating the work-order with one or more servicefees and/or parts fees, as appropriate. This process is described ingreater detail below.

The exemplary environment 10 includes the mobile computing device 14 andthe servers 16, data server 17, Re-order parts electronically (ROPE)database 40 and distributor devices 42, which are coupled together by acommunication network 30, although the environment can include othertypes and numbers of devices, components, elements, and communicationnetworks 30 in other topologies and deployments. While not shown, theexemplary environment 10 may include additional components, such asdatabases, etc., which are well known to those of ordinary skill in theart and thus will not be described here. This technology provides anumber of advantages including providing more effective methods,non-transitory computer readable medium and devices for generating awork-order in real time.

The mobile computing device 14 assists with generating a work-order inreal time as illustrated and described with the examples herein,although mobile computing device 14 may perform other types and numbersof functions. The mobile computing device 14 includes at least oneCPU/processor 18, memory 20, input device 22A and display device 22B,and communication interface 24, which are all coupled together by bus26, although mobile computing device 14 may comprise other types andnumbers of elements such as an antenna for receiving analog or digitalsignals in other configurations.

Processor(s) 18 may execute one or more computer-executable instructionsstored in the memory 20 for the methods illustrated and described withreference to the examples herein, although the processor(s) can executeother types and numbers of instructions and perform other types andnumbers of operations. The processor(s) 18 may comprise one or morecentral processing units (“CPUs”) or general purpose processors with oneor more processing cores, such as AMD® processor(s), although othertypes of processor(s) could be used (e.g., Intel®).

Memory 20 may comprise one or more tangible storage media, such as RAM,ROM, flash memory, CD-ROM, floppy disk, hard disk drive(s), solid statememory, DVD, or other memory storage types or devices, includingcombinations thereof, which are known to those of ordinary skill in theart. Memory 20 may store one or more non-transitory computer-readableinstructions of this technology as illustrated and described withreference to the examples herein that may be executed by the one or moreprocessor(s) 18. The flow chart shown in FIGS. 2A-2B is representativeof example steps or actions of this technology that may be embodied orexpressed as one or more non-transitory computer or machine readableinstructions stored in memory 20 that may be executed by theprocessor(s) 18.

Input device 22A enables a user, such as a contractor, to interact withthe mobile computing device 14, such as to input and/or view data and/orto configure, program and/or operate it. By way of example only, inputdevice 22A may include one or more of a touch screen, keyboard and/or acomputer mouse.

The display device 22B enables a user, such as an administrator, tointeract with the mobile computing device 14, such as to view and/orinput information and/or to configure, program and/or operate it by wayof example only. By way of example only, the display device 22B mayinclude one or more of a CRT, LED monitor, LCD monitor, or touch screendisplay technology although other types and numbers of display devicescould be used.

The communication interface 24 in the mobile computing device 14 is usedto operatively couple and communicate between the mobile computingdevice 14, the servers 16 data server 17, Re-order parts electronically(ROPE) database 40, distributor devices 42, although other types andnumbers of systems, devices, components, elements and/or networks withother types and numbers of connections and configurations can be used.By way of example only, the mobile computing device 14 can interact withother devices via a communication network 30 such as Local Area Network(LAN), analog radio signals, digital radio signals and Wide Area Network(WAN) and can use TCP/IP over Ethernet and industry-standard protocols,including NFS, CIFS, SOAP, XML, LDAP, and SNMP, although other types andnumbers of communication networks, can be used. In this example, the bus26 is a hyper-transport bus, although other types of buses and/or otherlinks may be used, such as PCI.

Each of the servers 16 and the data server 17 includes a centralprocessing unit (CPU) or processor, a memory, a communication interface,input device and display device, which are coupled together by a bus orother link, although each could have other types and numbers of elementsand/or other types and numbers of network devices could be used in thisenvironment. In this example, the servers 16 may run applications whichassist the servers 16 to respond to requests from the mobile computingdevice 14, although the server may run other types or amounts ofapplications. Additionally, in this example, the mobile computing device14 can use data server 17 to send a notification to replenish parts tothe re-order parts electronically (ROPE) database 40. In anotherexample, the servers 16 can also be configured to include the contentsof the data server 17.

As illustrated in FIG. 1, environment 10 also includes a ROPE database40 which includes information associated with parts required forrepairs, although the ROPE database can include other types or amountsof information. In this example, the data server 17 interacts with theROPE database 40 via the communication network 30, although the dataserver 17 can interact with the ROPE database 40 via other topologies.Additionally, the distributor devices 42 can upload data associated withthe parts to the ROPE database 40 via the communication network 30,although the distributor and the ROPE database 40 can interact throughother network topologies.

Each of the distributor devices 42 includes a central processing unit(CPU) or processor, a memory, a communication interface, input deviceand display device, which are coupled together by a bus or other link,although each could have other types and numbers of elements and/orother types and numbers of network devices could be used in thisenvironment. In this example, the distributor devices 42 may runapplications which with uploading parts data to the ROPE database 40 torespond to requests from the data server 17 or the mobile computingdevice 14, although the server may run other types or amounts ofapplications.

It is to be understood that the methods of the examples described hereinare for exemplary purposes, as many variations of the specific hardwareand software used to implement the examples are possible, as will beappreciated by those skilled in the relevant art(s).

Furthermore, each of the methods of the examples may be convenientlyimplemented using one or more general purpose computer systems,microprocessors, digital signal processors, and micro-controllers,programmed according to the teachings of the examples, as described andillustrated herein, and as will be appreciated by those of ordinaryskill in the art.

The examples may also be embodied as the non-transitory computerreadable medium having instructions stored thereon for one or moreaspects of the technology as described and illustrated by way of theexamples herein, which when executed by a processor (or configurablehardware), cause the processor to carry out the steps necessary toimplement the methods of the examples, as described and illustratedherein.

Exemplary methods for generating work-order in real-time will now bedescribed below with reference to FIGS. 1-11, which illustrate thegeneration of finalized a work order for the repair or installationservices of a contractor, by way of example only, an electrician, aplumber, or a heating and cooling technician.

Particularly with reference to FIG. 2A, an exemplary process begins atstep 205 with a mobile computing device 14 sending out a request toconnect to a server 16 including multiple databases via thecommunication network 30, although the mobile computing device 14 canconnect to the server 16 using any other methods or techniques. In thisexample, the multiple databases within the server 16 include repairoptions, although the databases can include any other information oritems.

In step 210, the mobile computing device 14 once connected to server 16sends out registration information and profile settings to the server16. An exemplary process of the mobile computing device 14 receivingregistration information from a user of the mobile computing device 14will now be explained with reference to FIG. 3. In step 305, the user ofthe mobile computing device 14 signs up for an account and use of anapplication within the mobile computing device 14 using a web-browser,although the user of the mobile computing device 14 can alternativelysign up directly from the previously downloaded application executingwith the mobile computing device 14. By way of example only, the user ofthe mobile computing device 14 may enter user name and password usingthe input device 22A as the process of signing up, although the user ofthe mobile computing device 14 may enter other types or amounts ofinformation such as user location information or other demographicdetails. In step 310, the mobile computing device 14 receives userinformation associated with the user of the mobile computing device 14such as name, company name, location, although the mobile computingdevice 14 can receive other types or amounts of information associatedwith the user of the mobile computing device 14. Next, in step 315 aftersuccessful registration, the mobile computing device 14 receives laborrates such as day rates, off-hour rates or other rates from the user ofthe mobile computing device 14 via the input device 22A. In step 320,the mobile computing device 14 receives a parts mark up via the inputdevice 22A. Next in step 325, the mobile computing device 14 determinesif there is a requirement for a service call diagnostic fee based oninformation received in step 305 and 310, although the mobile computingdevice 14 can determine the requirement for the service call diagnosticfee using other techniques such as by displaying a message on thedisplay device 22B and receiving a response from the user using theinput device 22A. If the mobile computing device 14 determines that adiagnostic fee is required, a Yes branch is taken to step 330 where themobile computing device 14 receives the service call diagnostic fee fromthe user of the mobile computing device 14 via the input device 22A.However, if the mobile computing device 14 determines that thediagnostic fee is not required, a No branch is taken to step 335. Instep 335, the mobile computing device 14 determines a requirement ofsales tax information based on the geographical location of the user ofthe mobile computing device 14, although the mobile computing device 14can determine the requirement of sales tax based on other parameters. Ifthe mobile computing device 14 determines that sales tax information isrequired, a Yes branch is taken to step 340 where the mobile computingdevice 14 receives the sales tax information from the user of the mobilecomputing device 14 via the input device 22A, although the mobilecomputing device 14 can automatically obtain the sales tax informationfrom a database (not shown) without requiring the user of the mobilecomputing device 14 to enter the information. However, if the mobilecomputing device 14 determines that there is no requirement for salestax information, a No branch is taken to step 345. In step 345, themobile computing device 14 determines if there is a requirement formaintenance agreement. If the mobile computing device 14 determines thatthere is a requirement for maintenance agreement, a Yes branch is takento step 350 where the mobile computing device 14 receives themaintenance agreement information from the user of the mobile computingdevice 14 via the input device 22A, although the mobile computing device14 can receive the maintenance agreement information from a databasewithout having the user of the mobile computing device 14 to enter theinformation. However, if the mobile computing device determines thatthere is no requirement for having a maintenance agreement, a No branchis taken to step 360. In step 360, the mobile computing device 14receives credit card information such as card type, card number, expirydate, full name on the card and the CVV of the credit card of the userof the mobile computing device 14 via the input device 22A. Next, instep 365, the mobile computing device 14 determines if the receivedcredit card information is valid by matching the received informationagainst the information stored in a credit card database (not shown),although the mobile computing device 14 can determine the validity ofthe credit card using other techniques. If the mobile computing device14 determines that the received credit card information is not valid, aNo branch is taken back to step 360 where the mobile computing device 14may request the user to reenter the credit card information untilcompleting a successful validation. However, if the mobile computingdevice 14 determines that the credit card is valid, a Yes branch istaken to step 370 where the mobile computing device 14 sends theregistration information, diagnostic fees, sales tax fees, maintenanceagreements, and the credit card information to one of the server 16confirming successful registration.

Additionally in this example, the mobile computing device 14 cangenerate and apply a tag (custom label) to the registration informationand the profile settings so that this information can be associated witha particular user of the mobile computing device 14. Tags can be appliedto individual users or collectively to large groups of users (i.e., alltechnicians employed by a particular contractor, or all techniciansapproved to use a particular parts distributor). An individual useraccount may have multiple tags associated with his/her mobile computingdevice 14.

These tags applied by the mobile computing device 14 can be later usedby the mobile computing device 14 for one or more of applying discounts(including manufacturer rebates passed along to customers, discountsapplied to certain types of work), displaying or providing notificationsto the user of the mobile computing device 14, not requiring the user toenter credit card information for the second time (or at all, if theuser is associated with a vendor whose contract does not require it),and associating technicians with preferred parts distributors. The tagscan be used for other purposes. Use of these tags by the mobilecomputing device 14 can assist a user in quickly and effectivelygenerating the finalized work-order in real time.

As previously illustrated, tagging could be used for the purpose ofidentification. By way of example only, if the user of the mobilecomputing device 14 is a first time user, the mobile computing device 14can apply a first time user tag to obtain a certain number ofwork-orders without payment (which can be applied to a work-orderbalance associated with the user's account). In this instance, the firsttime user tag can optionally be used to exclude the fee adjustment (costrecovery) process, as described hereinafter, for all “free” work-orderscredited to the user's account.

In another example, the one or more configurations within the mobilecomputing device 14 could be automatically reconfigured by the mobilecomputing device 14 based on the applied tag. For instance, for alltechnicians associated with a particular contractor, the contractor mayhave a pre-authorized charge for work-orders on a periodic basis (e.g.,daily, weekly, etc.) that allows those technicians to open newwork-orders without regard to maintaining a positive work-order balance(discussed in greater detail below). By changing the one or moreconfigurations, this technology provides advantages of the mobilecomputing device 14 having a customized configuration for a particularuser of the mobile computing device 14.

With respect to FIG. 2A, in step 215, as a response to sending theregistration information and profile settings, the mobile computingdevice 14 receives an activation code from the server 16 confirming theregistration, although the mobile computing device and the server canconfirm the registration using any other methods or techniques.

Next in step 220, the mobile computing device 14 obtains one of thedatabases including items for repairs from the server 16, although themobile computing device can download any other database from the serverincluding any amount of information in any format. In this example, themobile computing device 14 displays a progress indicator on the displaydevice 22B indicating the percentage of progress of obtaining one of thedatabase including items for repairs from the server 16. However, inthis example, if the connection between the mobile computing device 14and the server 16 terminates before downloading all the data, the mobilecomputing device 14 restarts the process of obtaining the remaining datafiles and after all the data files have been processed, the mobilecomputing device 14 saves a success flag (to prevent retries), whereinthe mobile computing device 14 automatically updates the database andcontinues to the next step of the exemplary process.

Additionally in this example, as further illustrated in FIG. 4, in thisexample, the mobile computing device 14 receives the one of the databasefrom the server 16 with data which is split (the server splits thedata), although the mobile computing device 14 can receive the databasein any other format. The mobile computing device 14 adds each file to amanifest file along with any supporting metadata. Further in thisexample, the mobile computing device 14 further encodes the split datafiles and the manifest file as JSON documents to take advantage of theperformance of the native parsing built into a web browser. This methodof encoding of the data provides advantages of preventing a web browserfrom crashing as large files can lead to exhausting the memory therebyleading to failure of the web browser. Additionally, this technique ofencoding optimizes the size of the data files to be as large as possiblewithout overwhelming the capabilities of the weaker mobile computingdevice 14. Further, the mobile computing device 14 loads and parses themanifest file and the data files to a queue present within the memory 20of the mobile computing device 14 and any old data on the mobilecomputing device 14 is deleted, although the mobile computing device 14can store the old data at any memory location. The mobile computingdevice 14 persist the data in the queue by wrapping a series of SQLINSERTS in a single transaction.

It should also be appreciated that database synchronization can becarried out either automatically (e.g., daily at prescribed time),periodically at the discretion of a user (i.e., forced synchronization),or both. Synchronization allows the mobile computing device 14 toutilize the most up-to-date data concerning parts pricing and/or labortimes associated with the repairs.

Having obtained the databases, the mobile computing device 14 can beused to create a new work-order, populate the work-order with fees forservice or parts, and generate a finalized work-order as describedherein. In one approach, a user may authorize, via the mobile computingdevice 14, each work-order transaction individually by paying for eachwork-order as it is opened. Alternatively, a user may establish withhis/her account a pre-paid work-order balance that allows automatedreplenishment of the work-order balance if the balance equals (or fallsbelow) a threshold level set by the user. This will allow the user toavoid having to individually authorize payment each time a work-order isopened.

An exemplary method will be further explained with reference to FIG. 10.In step 1005, the mobile computing device 14 creates a new work-orderand also decrements a work-order balance. Next in step 1010, the mobilecomputing device 14 determines if the work-order balance is equal to athreshold number. The threshold number can be set arbitrarily as 0, 1,2, 3, or any other positive integer, as desired by the user. If themobile computing device 14 determines that the work-order balance isequal to the threshold number, a No branch is taken back to step 1005,where additional work-orders can be opened (and finalized work-orderscan be generated, as further illustrated below in step 235 of FIG. 2A).However, if the mobile computing device 14 determines that thework-order balance is equal to the threshold number, then a Yes branchis taken to step 1015. In step 1015, the mobile computing device 14determines if the current account has been registered to automaticallypay for an additional amount of work-orders. If the mobile computingdevice 14 determines that the current account has been registered toautomatically pay, a Yes branch is taken to step 1020 where apre-defined number of work-orders are purchased and then credited atstep 1030 to the work-order balance associated with the user's account.However, if the mobile computing device 14 determines that the currentaccount has not been registered to automatically pay, a No branch istaken to step 1025. In step 1025, the mobile computing device 14 obtainsaccount information, or credit/debit card information from the userwhich could be used to purchase the work-order. Once the work-order(s)have been purchased, in step 1030, the mobile computing device 14credits the work-order balance associated with the user's account.

After opening a new work-order, having already obtaining the databasefrom the server 16, in step 225, the mobile computing device 14identifies items in the database. In this example, items relate topossible repair items, including repair services and parts althoughitems can include any amount of any other information in any format.Additionally, in this example, the mobile computing device 14 identifiesthe items in the database by searching in the obtained database. Themobile computing device 14 searches the database by receiving one ormore search terms via the input device 22A, although the mobilecomputing device can receive the search terms using any other methods ortechniques.

Using a list of common phrases the server 16 constructs a weightedsuffix trie, which is later obtained by the mobile computing device 14to provide suggestions to complete the search terms. In another example,the methods or functions performed by the server 16 could also beperformed by the mobile computing device 14. Alternatively, server 16can also be a part of the mobile computing device 14. An exemplarymethod of the server 16 constructing the weighted suffix trie will nowbe described. To add a phrase, the server 16 starts at the root node ofthe trie, and checks to see if any of the child nodes match the firstletter of the phrase. If there is a match, the server 16 increases theweight of the path to that child node by one, and that child nodebecomes the new current node—and will be searched for the next letter inthe received phrase. If the letter is not found, a new child node isadded with a starting weight of one. This cycle repeats until all theletters in the phrase have been added by the server 16, and then a finalnode is added with a stop character ($) to indicate the end of the word(FIG. 5A). In this example, a weighted suffix trie is an ideal datastructure for the index. It reduces storage and memory requirementsbecause words with common prefixes share nodes. Also the trie structureis very efficient for quickly exploring alternative words and spellings.By adding weights to the data, the most likely suffixes for partialsearch terms can be found.

An exemplary operation will now be described considering an example asillustrated in FIGS. 5B-5D. A search for the closest matches for “rerur”will result in the following:

The search starts at the root node, and creates a path for the childnodes: “r” and “c” (FIG. 5B). The first has a distance of zero, becauseit is an exact match to the first “r” in “rerur”. The “c” has a distanceof two because it is not a match. The list of paths (sorted by distance)looks this:

Phrase Distance R 0 C 2

Since the “r” path is the closest, the children will be followed. Thedistance is still zero because the “e” is an exact match.

Phrase Distance Re 0 C 2

The closest path “re” is followed, and a path is added for each of itschildren. In this example, “rev” scores lower than “c” because thedistance is the same and “c” has a higher weight in the tree. Also inthis example, “ret” got a distance of one. Usually a wrong letterincreases the distance by two. However, in this example the algorithmdetected that proximity of the “t” and “r” (from “rerur”) on thekeyboard, and gave it a lower distance penalty.

Phrase Distance Rer 0 Ret 1 C 2 Rev 2

The “rer” path is followed, and it is still an exact match for thesearch phrase.

Phrase Distance Reru 0 Ret 1 C 2 Rev 2

Once again, the top phrase is followed but this time, when expanded to“rerun”, it is no longer an exact match and falls to the bottom of thelist.

Phrase Distance Ret 1 C 2 Rev 2 rerun 2

“ret” is followed, which adds two paths to the list “retu” and “reta”.The former maintains distance because the “u” is an exact match, but thelater moves away by two.

Phrase Distance Retu 1 C 2 Rev 2 rerun 2 Reta 3

Following “retu”, produces “retur” and “return”, again with no change indistance. In the next step the two children are added producing thefollowing list.

Phrase Distance return$ 1 returns 1 c 2 rev 2 rerun 2 reta 3

Since “return” has hit a stop character ($), it is removed from the listof active paths and put into the first position of the results list.After the next step the same thing happens with “returns” leaving thefollowing active paths:

Phrase Distance c 2 rev 2 rerun 2 reta 3

So, the search hops back over to the “c” path, which changes the phraseto “co” giving it a distance of four.

Phrase Distance rev 2 rerun 2 reta 3 co 4

The path for “rev” is followed to produce “reve” with a distance offour.

Phrase Distance rerun 2 reta 3 co 4 reve 4

Finally, “rerun” gets another chance and hits the end of word character,so it is put on the end of the results, which are now: return, returns,rerun. The above illustrated techniques will continue until: there areno more paths to search, it has collected the max number of resultsrequested, or the distance of the closest path is outside of a“closeness” threshold. At any of these points, the current results arereturned and displayed on the display device 22B by the mobile computingdevice 14.

The mobile computing device 14 uses selection of the providedsuggestions to search for the items in the database, although the mobilecomputing device 14 can use any other methods or techniques to searchfor the items in the database. The techniques illustrated above providesadvantages when the mobile computing device 14 receives search terms ina search box, suggestions are shown to: reduce the amount of typingrequired, show alternative spellings when the user has mistyped, andgive feedback about the likelihood of a match while waiting for the fullsearch results to load. This is especially important on the mobilecomputing device 14 because the search is slower, and the smallerkeyboards make typing more cumbersome and errors more likely.

Next, based on the identified items, in step 230 the mobile computingdevice 14 determines a fee based on fee setting parameters. In thisexample, the mobile computing device 14 determines the fee based on anitem markup percentage, sales tax and any of a variety of service ratesincluding day rates, off-hour rates or any other associated ratespreviously received in step 210, although the mobile computing device 14can determine the fee based on any other or types or parameters. Themobile computing device 14 can also use a custom setting present withinthe mobile computing device 14 to determine the fee. When calculatingthe sale price of parts, the mobile computing device 14 will multiplythe cost of the part against a markup multiplier received in step 210 todetermine the final sale price. This multiplier is based on the cost ofthe part, with less expensive parts typically having a highermultiplier. Typically these markups are described as a series of ranges,as illustrated in the table below:

Above Below Markup — $2.00 5 $2.00 $5.00 5 $5.00 $10.00 4 $10.00 $20.003.5 $20.00 $40.00 3 $40.00 $60.00 2.75 $60.00 $100.00 2.5 $100.00$150.00 2.25 $150.00 $500.00 2 $500.00 — 1.3

By way of example only, an $8 part would fall in the $5-10 range and themultiplier would be four, giving a final sale price of $32 ($8×4). Thismarkup creates an unusual circumstance when crossing the boundariesbetween ranges (as illustrated in FIG. 11A). For example: A $4.50 parthas a markup of 5×, resulting in a sale price of $22.50; but a $5.10part, which has a markup of 4×, would have a sale price of just $20.40,making it less expensive than the $4.50 part.

Additionally, in this example, the mobile computing device 14 determinesthe item markup percentage using a markup range and a smoothing functionwhich will now be described using the following equation, although themobile computing device 14 can calculate the item markup percentage canbe using any other methods or techniques:

I+(E−I)×((C−L)/(H−L))^(1/S×((C−L)/(H−L))) ^(1/V)

wherein I is a markup for inexpensive parts, E is a markup for expensiveparts, C is a cost of the part, L is a minimum part cost, H is a maximumpart cost, S is a maximum smoothing and V is a curve variation and thevalue of C should be between L and H, as a precondition for theequation. However, when C is less than L or greater than H, then thealgorithm returns the value of I or E respectively. In this example, themaximum smoothing and curve variation are defined to achieve the desiredcurve shape in an otherwise step-shaped markup graph shown in FIG. 11A.This allows for a more aggressive decrease in the markup as the partcost increases. However, regardless of the shape of the markup curve, asthe multipliers for expensive and inexpensive parts converge, theresulting markups conveniently flatten out, turning into a flat linewhen the two multipliers are equal. By creating a function that cancalculate a continuous markup multiplier for any part price, thechoppiness can be removed (compare FIGS. 11A-B) and less costly partswill not get marked up to a higher sales price than more expensiveparts.

Optionally, the fee determined by the mobile computing device 14 can bea customized fee saved in a database. For example, a user may have adiscounted service fees for certain customers (i.e., volume-relateddiscounts), and the customized fees can be accessed from the databasefor those customers.

Next in step 235, the mobile computing device 14 generates a work-orderin real-time based on the determined fee and the selected items,although the mobile computing device can generate the work order usingany other parameters. In this example, the work order includes the listof all the selected items (repair items), parts associated with therepair items and diagnostic fees, maintenance fees, the associated feeof the selected items and the total fee, although the mobile computingdevice can generate the work-order using any combination of feeparameters as well as other parameters. In this example, prior tofinalizing the generated the work order, the mobile computing device 14performs one or more of determining a cost recovery fee adjustment,applying a discount, or determining for availability of parts requiredfor repairs within the generated work-order, although the mobilecomputing device 14 may perform other operations prior to finalizing thegenerated the work-order in real time.

An exemplary method for determining availability of parts required forrepair within the generated work-order will now be illustrated withreference to FIGS. 6A-6C. In step 605, the mobile computing device 14obtains all the list and quantity of all the parts required for therepairs present within the generated work-order, although the mobilecomputing device can obtain other information from the generatedwork-order. Next in step 610, the mobile computing device 14 determinesusing a data server 17, if the obtained list of parts is availablewithin the ROPE database 40, although the mobile computing device 14 candetermine without using the data server 17. By way of example only, themobile computing device 14 compares the list and quantity of obtainedparts against a table (which includes the list and quantities of allparts present within a parts warehouse) present within the ROPE database40 to determine the availability, although the mobile computing device14 can determine the availability using other techniques. In step 615,based on the determination, the mobile computing device 14 using thedata server 17 sends out a notification to the ROPE database 40 toreplenish the required parts. Alternatively, the user of the mobilecomputing device 14 can manually choose to submit all parts consumed forreplenishment or only a subset of those parts, export a list of theremaining parts, or augment the order with other parts using the mobilecomputing device 14. In yet another alternative approach, a contractorwith multiple technicians may elect to aggregate consumed parts on aregular or as-needed basis, and collectively order parts as frequentlyas desired.

Regardless of the approach, the ROPE database 40 then forwards thisnotification to the distributor device to replenish the parts. Thisinteraction is further explained with reference to FIG. 6B. In step 1,the distributor device 42 uploads the parts data to the ROPE database40, although the distributor device 42 can upload other types or amountsof information. Next, in step 2, the mobile computing device 14 sendsthe list of parts required for the repair to the data server 17,although the mobile computing device 14 can send other informationpresent in the work-order to the data server 17. In step 3, the dataserver 14 sends a list of manufacturer part numbers for the list ofparts received from the mobile computing device 14 to the ROPE database40. Next in step 4, the ROPE database 40 performs a search to determinefurther details associated with the parts back to the data server 17. Instep 5, responsive to receiving the further details associated with theparts, the data server 17 sends a notification to replenish the parts tothe ROPE database 40. In step 6, the ROPE database 40 forwards thenotification to the distributor device 42 to replenish the parts.

Additionally, FIG. 6C illustrates the environment of the mobilecomputing device 14, data server 17, ROPE database 40 and distributordevice 42. In FIG. 6C, A-H are employees associated with a contractorusing the mobile computing device 14 and S-Z are location associatedwith the distributor device 42, although the employees A-H could beassociated with multiple contractors and locations S-Z could beassociated with multiple distributers. These relations between theemployees-contractors and locations-distributors may be establishedusing tags previously illustrated.

As illustrated in FIG. 6C, the ROPE database establishes relationshipsbetween the mobile computing device 14 (contractors) and the distributordevice 42 such that any mobile computing device 14 can order parts fromany distributor device 42 for which a relationship has been establishedin the system. However, there is no limit to the number of mobilecomputing device 14 and distributor device 42 relationship and they maybe established or dissolved at any time. Additionally, in this example,once a relationship between the mobile computing device 14 and thedistributor device 14 has been established, a secondary relationshipbetween the employee using the mobile computing device 14 and thedistributor location may be established such that a specific employeemay order from a specific distributor location.

An exemplary method for determining a cost recovery will now beillustrated with reference to FIG. 7. Effectively, the method describedbelow allows a user to recoup a cost associated with generating awork-order from the customer receiving services from the user. In step705, the mobile computing device 14 obtains the fee associated with eachrepair of the work-order, although the mobile computing device 14 canalso obtain the aggregate fee for all repairs in the work order. Next instep 710, the mobile computing device 14 determines a fee adjustmentvalue for the obtained repair fee. By way of example only, the mobilecomputing device 14 can determine the fee adjustment value based on apre-defined fee adjustment value (cost recovery value) stored within thedatabase (not shown), although the mobile computing device 14 candetermine the fee adjustment value based on other parameters. This feeadjustment value can be applied once per work-order or, in the instanceof complicated work-orders containing many repairs, the fee adjustmentvalue can be applied more than once per work-order, if desired. Forexample, the fee adjustment value can be applied to the first repair andevery other repair, or third or fourth repair, thereafter.Alternatively, in another example, the mobile computing device 14 candetermine a fee adjustment value for the total sum of all repairs withinthe generated work-order based on the pre-defined fee adjustment value.Regardless of the approach used, in step 715 the mobile computing device14 applies the determined fee adjustment value to the repair fee(s) inthe generated work-order.

An exemplary method for applying discounts will now be illustrated withreference to FIG. 8A. In step 805, the mobile computing device 14obtains the total fee present within the generated work-order. In step810, the mobile computing device 14 determines a discount value (whichcan be a promotional code, or a coupon value) to be applied to theobtained total fee. In this example, the mobile computing device 14 candetermine the discount value based one or more of the tags applied tothe user account, a coupon code or a promotional code received from auser via the input device 22A, a pre-defined discount value based on thetotal fee in the invoice, or a pre-defined discount value based on thetotal number of repairs within the invoice, although the mobilecomputing device 14 can determined the discount value based on otherparameters (e.g., discount associated with a maintenance agreement ormanufacturer rebate passed along to customer). Next, in step 815, themobile computing device 14 applies the determined discount value to thetotal fee in the generated work-order.

In another exemplary method, illustrated in FIG. 8B, the mobilecomputing device 14 can obtain fees associated with one or more selectedrepairs within the generated work-order, and apply any discountselectively to the one or more repairs. For example, in step 825, themobile computing device 14 obtains the fee amount per selected repair inthe generated work order. In step 830, the mobile computing device 14determines a discount value (which can be a promotional code, or acoupon value, as described above) to be applied to the obtained fee,which has been selected by a user. Next, in step 835, the mobilecomputing device 14 applies the determined discount value to theselected repair fee in the generated work-order, and the total sum ofall repair fees can be generated for the whole work-order.

Now with reference to FIG. 2A, in step 240 the mobile computing device14 provides the generated work-order to fit within the display device22B using techniques which will now be illustrated, although the mobilecomputing device 14 can provide the generated work-order using any othermethods or techniques. The mobile computing device 14 divides thedisplay device 22B into two types of pages a navigation page and acontent page. When on a navigation page, the mobile computing device 14displays a list of items. Upon receiving a selection of the listeditems, the mobile computing device 14 loads another navigation page or acontent page. Additionally, if the display device 22B of the mobilecomputing device 14 is wide enough, the navigation page will show asummary/placeholder page to the right of the navigation pane asillustrated in FIG. 9.

However, on a content page, the navigation will not be shown—unless thebrowser is wide enough to accommodate both navigation and content—and a“back” button will be provided by the mobile computing device 14. Theback button provided by the mobile computing device 14 would assist withmoving back to the previous navigation page. This illustrated technique,provides advantages of changing the user interface on the display deviceto adjust based on the width of the browser viewport, which isindependent of the mobile computing device 14. Additionally, theillustrated technique can adjust the presence of the navigation inresponse to resizing of the browser window and orientation changes ofmobile computing devices. Furthermore, the illustrated technique can beimplemented on any device and the technique does not rely on detectingdevice's make or model.

In step 245, the mobile computing device 14 determines if any changesare necessary to the provided work-order based on inputs received at theinput device 22A of the mobile computing device, although the mobilecomputing device can determine necessary changes using any other methodsor techniques. In this example, the mobile computing device 14 canreceive any necessary changes or confirmation via the input device 22Ato the provided generated work-order. If the mobile computing device 14determines any changes are needed for the provided work-order, a Yesbranch is taken to step 250 to obtain the changes to the work order andthen to generate a revised work-order.

However, if the mobile computing device 14 determines that no furtherchanges are required, a No branch is taken to step 255 where the invoicefor the work order is generated by the mobile computing device 14 basedon the total fee present within the generated work-order. In thisexample, the mobile computing device 14 can receive a signature on thework-order via the input device 22A confirming the details of thework-order.

In step 260, the mobile computing device 14 determines if a fee setforth in the invoice has been paid. If the mobile computing device 14determines that the fee in the invoice has been paid, a Yes branch istaken to step 270 to update the generated invoice and the work-order inthe database. However, if the mobile computing device 14 determines thatthe fee set forth in claim invoice has not been paid, a No branch istaken to step 265 where the mobile computing device 14 can either waituntil the fee has been paid and then proceed to update the work-orderand invoice. Alternatively, the mobile computing device 14 can waituntil a certain period of time, by way of example only 30 days, afterwhich the mobile computing device 14 can automatically update thework-order and the invoice to the database and store or archive thework-order and the invoice.

In step 270, while updating the work-order and the invoice to thedatabase in the server, the mobile computing device 14 first checkswhether there is a network connection between the mobile computingdevice 14 and the server 16. If the mobile computing device determinesthat there is a network connection (online) between the mobile computingdevice 14 and the server 16, a Yes branch is taken to step 280 where themobile computing device 14 directly uploads or stores the work-order andthe invoice to the databases present in the server 16, although themobile computing device 14 can save the work-order locally within thememory 20 and then uploaded to database present in the server 16.However, if the mobile computing device 14 determines that there is noconnection (offline) between the mobile computing device 14 and theserver 16, a No branch is taken to step 275 where the mobile computingdevice 14 uploads or stores the work-order in the previously obtaineddatabase from the server 16 (which is stored within the memory of themobile computing device), and once the network connection is establishedbetween the mobile computing device 14 and the server 16, the mobilecomputing device 14 proceeds to update the database present in theserver 16, with the one present within the memory 20 of the mobilecomputing device 14. Additionally, the mobile computing device 14 canautomatically receives notification from the server 16 where there areany updates determined by the server 16.

In step 285, the mobile computing device 14 closes the work-order andthe exemplary process ends.

Additionally, the mobile computing device 14 may provide rewards uponsuccessful completion of work-orders and/or closing of work-orders uponreceipt of payment. By way of example only, the mobile computing device14 can add the amount present in the invoice to the account associatedwith the user of the mobile computing device 14, and reward the user bynotifying the user of the number of completed work-orders over a periodof time, the percentage of completed work-orders that are closed withpayment of the invoice, the aggregate sum of invoices over a period oftime, whether the user is in, e.g., the top 25% percent of techniciansemployed by a particular contractor, etc. The mobile computing device 14can provide notification (triggers) via text message, email or on thedisplay device 22B indicating the rewards supplied to the user.

A further aspect of the invention includes the ability to synchronizethe completed invoice data or completed but unpaid work-order data orcustomer data from the inventive device and method to accountingsoftware such as QuickBooks™ and back from the accounting software suchas QuickBooks™ to the inventive device. This can be achieved usingtagged database records, and synchronization of the tagged records. Anexemplary method for data synchronizing is illustrated in FIG. 12.

Having thus described the basic concept of the invention, it will berather apparent to those skilled in the art that the foregoing detaileddisclosure is intended to be presented by way of example only, and isnot limiting. Various alterations, improvements, and modifications willoccur and are intended to those skilled in the art, though not expresslystated herein. These alterations, improvements, and modifications areintended to be suggested hereby, and are within the spirit and scope ofthe invention. Additionally, the recited order of processing elements orsequences, or the use of numbers, letters, or other designationstherefore, is not intended to limit the claimed processes to any orderexcept as may be specified in the claims. Accordingly, the invention islimited only by the following claims and equivalents thereto.

What is claimed is:
 1. A method for generating a work-order in realtime, the method comprising: identifying, by a mobile computing device,one or more databases from one or more sources; identifying, by themobile computing device, one or more items in the identified one or moredatabases; determining, by the mobile computing device, a fee for theidentified one or more items based on one or more fee settingparameters; and generating, by the mobile computing device, a finalizedwork-order in real-time based on the determined fee, wherein the methodfurther comprises one or more of: determining, by the mobile computingdevice, a discount value for one or more determined fees and applyingthe determined discount value to the one or more determined fees; orapplying, by the mobile computing device, a custom label to a useraccount associated with the mobile computing device, whereby one or moreprocess steps of the method is modified based on the applied customlabel, either before or after generating the work-order.
 2. The methodas set forth in claim 1 wherein the method further comprises one or moreof: determining, by the mobile computing device, a fee adjustment forone or more determined fees and applying the determined fee adjustmentto one or more determined fees; or determining, by the mobile computingdevice, whether the generated work order reduces a user account balanceto below a threshold level.
 3. The method as set forth in claim 2further comprising: determining, by the mobile computing device, a finalinvoice amount based on one or more of a determined fees, the determinedfee adjustment, or the determined discount value; and generating, by themobile computing device, an invoice associated with the generatedwork-order based on the determined final invoice amount.
 4. The methodas set forth in claim 2 wherein, upon a user account balance fallingbelow a threshold level, the method further comprising one or more of:authorizing, by the mobile computing device, a payment by a user tore-establish a user account balance that exceeds the threshold level;notifying a user, by the mobile computing device, of the user accountbalance; allowing, by the mobile computing device, to generate one ormore work-orders until the user account balance is zero; anddisallowing, by the mobile computing device, from generating one or morework-orders until the user account balance is above the threshold level.5. The method as set forth in claim 1 further comprising: determining,by the mobile computing device, occurrence of one or more eventtriggers, upon generating the work-order; and providing, by the mobilecomputing device, one or more notifications associated with the one ormore event triggers, when the one or more event triggers are determinedto have occurred.
 6. The method as set forth in claim 3 furthercomprising: identifying, by the mobile computing device, a reward basedon one or more of the generated invoices; and providing, by the mobilecomputing device, one or more reward notifications indicating theidentified reward.
 7. The method as set forth in claim 1 wherein thedetermining the discount value further comprises: determining, by themobile computing device, existence of one or more of a discount coupon,for the user or the custom label applied to the user; and applying, bythe mobile computing device, the discount value to the one or moredetermined fees when the one or more discount coupon is determined to bepresent.
 8. The method as set forth in claim 1, wherein the methodincludes said applying the custom label to a user account associatedwith the mobile computing device, wherein the custom label is associatedwith one or more of: delivering, by the mobile computing device, amessage to all users associated with the custom label; configuring, bythe mobile computing device, one or more configurations within themobile computing device for all users associated with the custom label,wherein the one or more configurations is one or more of a firstconfiguration for one or more employees of a particular contractor, or asecond configuration for custom prices; applying, by the mobilecomputing device, a discount coupon or a promotional code to all usersassociated with the custom label; and bypassing, by the mobile computingdevice, a user account balance threshold level requirement for all usersassociated with the custom label.
 9. The method as set forth in claim 1wherein the identifying further comprises: determining, by the mobilecomputing device, a requirement of one or more parts for the identifiedone or more items; determining, by the mobile computing device via adata server, an availability of the one or more parts in a parts datawarehouse when the one or more parts are determined to be required forthe identified one or more items; sending, by the mobile computingdevice via the data server, a notification to the parts data warehouseto replenish the one or more parts based on the determination.
 10. Themethod as set forth in claim 9 further comprising: ordering, by themobile computing device, the one or more parts from a pre-establisheddistributor; and ordering, by the mobile computing device, the one ormore parts from a different distributor for a specific employee.
 11. Anon-transitory computer readable medium having stored thereoninstructions for generating a work-order in real time comprising machineexecutable code which when executed by at least one processor, causesthe processor to perform steps comprising: identifying one or moredatabases from one or more sources; identifying one or more items in theidentified one or more databases; determining a fee for the identifiedone or more items based on one or more fee setting parameters; andgenerating a finalized work-order in real-time based on the determinedfee, wherein the method further comprises one or more of: determining adiscount value for one or more determined fees and applying thedetermined discount value to the one or more determined fees; orapplying a custom label to a user account associated with a mobilecomputing device, whereby one or more process steps of the method ismodified based on the applied custom label, either before or aftergenerating the work-order.
 12. The medium as set forth in claim 11wherein the method further comprises one or more of: determining a feeadjustment for one or more determined fees and applying the determinedfee adjustment to one or more determined fees; or determining whetherthe generated work order reduces a user account balance to below athreshold level.
 13. The medium as set forth in claim 12 furthercomprising: determining a final invoice amount based on one or more of adetermined fees, the determined fee adjustment, or the determineddiscount value; and generating an invoice associated with the generatedwork-order based on the determined final invoice amount.
 14. The mediumas set forth in claim 12 wherein, upon a user account balance fallingbelow a threshold level, the method further comprising one or more of:authorizing a payment by a user to re-establish a user account balancethat exceeds the threshold level; notifying a user of the user accountbalance; allowing to generate one or more work-orders until the useraccount balance is zero; and disallowing from generating one or morework-orders until the user account balance is above the threshold level.15. The medium as set forth in claim 11 further comprising: determiningoccurrence of one or more event triggers, upon generating thework-order; and providing one or more notifications associated with theone or more event triggers, when the one or more event triggers aredetermined to have occurred.
 16. The medium as set forth in claim 13further comprising: identifying a reward based on one or more of thegenerated invoices; and providing one or more reward notificationsindicating the identified reward.
 17. The medium as set forth in claim11 wherein the determining the discount value further comprises:determining existence of one or more of a discount coupon for the useror the custom label applied to the user; and applying, by the mobilecomputing device, the discount value to the one or more determined feeswhen the one or more of the discount coupon is determined to be present.18. The medium as set forth in claim 11, wherein the performed stepsinclude said applying the custom label to a user account associated withthe mobile computing device, wherein the custom label is associated withone or more of: delivering a message to all users associated with thecustom label; configuring one or more configurations within the mobilecomputing device for all users associated with the custom label, whereinthe one or more configurations is one or more of: a first configurationfor one or more employees of a particular contractor, or a secondconfiguration for custom prices; applying a discount coupon or apromotional code to all users associated with the custom label; andbypassing a user account balance threshold level requirement for allusers associated with the custom label.
 19. The medium as set forth inclaim 11, wherein the identifying further comprises: determining arequirement of one or more parts for the identified one or more items;determining, via a data server, an availability of the one or more partsin a parts data warehouse when the one or more parts are determined tobe required for the identified one or more items; sending, via a dataserver, a notification to the parts data warehouse to replenish the oneor more parts based on the determination.
 20. The medium as set forth inclaim 19 further comprising: ordering the one or more parts from apre-established distributor; and ordering the one or more parts from adifferent distributor for a specific employee.
 21. A mobile computingdevice comprising: one or more processors; a memory, wherein the memorycoupled to the one or more processors which are configured to executeprogrammed instructions stored in the memory comprising: identifying oneor more databases from one or more sources; identifying one or moreitems in the identified one or more databases; determining a fee for theidentified one or more items based on one or more fee settingparameters; and generating a finalized work-order in real-time based onthe determined fee, wherein the method further comprises one or more of:determining a discount value for one or more determined fees andapplying the determined discount value to the one or more determinedfees; or applying a custom label to a user account associated with amobile computing device, whereby one or more process steps of the methodis modified based on the applied custom label, either before or aftergenerating the work-order.
 22. The device as set forth in claim 21wherein the method further comprises one or more of: determining a feeadjustment for one or more determined fees and applying the determinedfee adjustment to one or more determined fees; or determining whetherthe generated work order reduces a user account balance to below athreshold level.
 23. The device as set forth in claim 22 wherein the oneor more processors is further configured to execute programmedinstructions stored in the memory further comprising: determining afinal invoice amount based on one or more determined fees, thedetermined fee adjustment, and the determined discount value; andgenerating an invoice associated with the generated work-order based onthe determined final invoice amount.
 24. The device as set forth inclaim 22 wherein, upon a user account balance falling below a thresholdlevel, the one or more processors is further configured to executeprogrammed instructions stored in the memory further comprising one ormore of: authorizing a payment by a user to re-establish a user accountbalance that exceeds the threshold level; notifying a user of the useraccount balance; allowing the mobile computing device to generate one ormore work-orders until the user account balance is zero; and disallowingthe mobile computing device from generating one or more work-ordersuntil the user account balance is above the threshold level.
 25. Thedevice as set forth in claim 21 wherein the one or more processors isfurther configured to execute programmed instructions stored in thememory further comprising: determining occurrence of one or more eventtriggers, upon generating the work-order; and providing one or morenotifications associated with the one or more event triggers, when theone or more event triggers are determined to have occurred.
 26. Thedevice as set forth in claim 23 wherein the one or more processors isfurther configured to execute programmed instructions stored in thememory further comprising: identifying a reward based on one or more ofthe generated invoices; and providing one or more reward notificationsindicating the identified reward.
 27. The device as set forth in claim21 wherein determining the discount value further comprises: determiningexistence of one or more of a discount coupon for the user or the customlabel applied to the user; and applying the discount value to the one ormore determined fees when the one or more discount coupon is determinedto be present.
 28. The device as set forth in claim 21 wherein the oneor more processors execute the instruction for applying the custom labelto a user account associated with the mobile computing device, whereinthe custom label is associated with one or more of: delivering a messageto all users associated with the custom label; configuring one or moreconfigurations within the mobile computing device for all usersassociated with the custom label, wherein the one or more configurationsis one or more of: a first configuration for one or more employees of aparticular contractor, or a second configuration for custom prices;applying a discount coupon or a promotional code to all users associatedwith the custom label; and bypassing a user account balance thresholdlevel requirement for all users associated with the custom label. 29.The device as set forth in claim 21 wherein the identifying furthercomprises: determining a requirement of one or more parts for theidentified one or more items; determining, via a data server, anavailability of the one or more parts in a parts data warehouse when theone or more parts are determined to be required for the identified oneor more items; and sending, via the data server a notification to theparts data warehouse to replenish the one or more parts based on thedetermination
 30. The device as set forth in claim 29 furthercomprising: ordering the one or more parts from a pre-establisheddistributor; and ordering the one or more parts from a differentdistributor for a specific employee.